1. Field of the Invention
Embodiments of the invention generally relate to an architecture and instructions for accessing multi-dimensional formatted graphics surface memory.
2. Description of the Related Art
In a conventional graphics processing system graphics data is stored in memory space through the execution of vertex shader programs and pixel shader programs. The conventional graphics processing system is also configured to read data from and write data to multi-dimensional formatted graphics surface memory. In the multi-dimensional formatted graphics surface memory graphics data is stored using multi-dimensional tiling patterns that are based on the type and format of the graphics data being stored and that also allow for efficient access of two-dimensional surfaces, such as screen images, and three-dimensional surfaces, such as volume images. The graphics data stored in the multi-dimensional formatted graphics surface memory may also be compressed. The conversion of an x,y screen position or surface memory position into a physical address to access the graphics data requires knowledge of the memory configuration, graphics data type, graphics data format, and other attributes specific to the graphics data. Without this knowledge, an application program can only access the graphics data through the execution of a vertex or pixel shader program using the graphics processing system. Typically, at least some portions of this knowledge is embedded within the graphics processing system and is not available to an application program that is not executed by the graphics processing system.
Recently, compute application programs that are typically executed by a central processing unit (CPU) are converted to parallel compute application programs executed by a parallel graphics processing unit (GPU) using GPU computing features. However, parallel compute application programs are unable to access data stored in multi-dimensional formatted graphics surface memory since the GPU computing features are not configured to convert an x,y graphics surface memory coordinate into a computing memory byte address in order to access the graphics data, nor are the compute application programs configured to convert between graphics data formats and computing data formats.
Accordingly, what is needed in the art is an improved system and method that allows compute application programs to access multi-dimensional formatted graphics surface memory.